home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / pcpm.arc / CPANODE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-06-04  |  1.6 KB  |  61 lines

  1. 10  REM **** CPANODE ****
  2. 11  PRINT TAB(10);"**** THIS MODULE PRINTS THE NODE NUMBERS USED IN A PROJECT ****":PRINT
  3. 12  DEFINT B-Z:DEFSNG A
  4. 15  DIM S(1000),P(1000),N(500)
  5. 20  CLOSE
  6. 60  GOSUB 5000   'READ INPUT FILE
  7. 66  PRINT "**** SORTING NODES ****"
  8. 70  GOSUB 7000  'SORT START NODES
  9. 80  PRINT "**** THE FOLLOWING NODE NUMBERS ARE USED IN: "G$" ****"
  10. 117  PRINT S(P(1));:N(1)=S(P(1)):J=2
  11. 130  FOR I=2 TO N
  12. 140  IF S(P(I))<>S(P(I-1)) THEN PRINT S(P(I));:N(J)=S(P(I)):J=J+1
  13. 160  NEXT I
  14. 170  NN=J-1
  15. 175  PRINT "**** CREATING FILE OF NODE NUMBERS -";F$;".NDS ****"
  16. 177  H$=F$+".NDS"
  17. 180  OPEN H$ FOR OUTPUT AS #1
  18. 190  FOR I=1 TO NN
  19. 200  PRINT #1,N(I)
  20. 210  NEXT
  21. 212  PRINT "**** FILE: ";H$;" CREATED - USE OPTION 14 TO GLOBALLY CHANGE NODES ****"
  22. 214  PRINT:PRINT:INPUT "Press ENTER to continue ",Q$
  23. 216  CHAIN "CPAMENU"
  24. 5000  REM **** READING IN ALREADY CREATED INPUT FILE ******************
  25. 5010  INPUT "Enter the name of the input file [.CPM] ";G$
  26. 5015  IF G$="Q" OR G$="QUIT" THEN 3500
  27. 5020  P=INSTR(1,G$,"."):IF P<>0 THEN F$=LEFT$(G$,INSTR(1,G$,".")-1) ELSE F$=G$
  28. 5030  IF LEN(F$)>8 THEN PRINT "**** NOT A VALID PCPM FILE ****":BEEP:GOTO 5010
  29. 5035  ON ERROR GOTO 5300
  30. 5037  G$=F$+".CPM"
  31. 5038  OPEN G$ FOR INPUT AS #3
  32. 5040  INPUT #3,P$,T6$,DA$
  33. 5050  I=-1
  34. 5060  I=I+2
  35. 5070  IF EOF(3) THEN 5110
  36. 5080  INPUT #3,D$,S(I),S(I+1),O2,D,A6,PC,B,CT
  37. 5090  IF I+1/10=INT((I+1)/10) THEN PRINT I;
  38. 5100  GOTO 5060
  39. 5110  N=I-1
  40. 5120  CLOSE #3
  41. 5130  PRINT " **** INPUT FILE READ ****"
  42. 5140  RETURN
  43. 5300  PRINT "**** FILE DOES NOT EXIST - TRY AGAIN ****":BEEP:GOTO 5000
  44. 7000  REM **** SHELL METZNER SORT ****************************************
  45. 7020  J=N
  46. 7030  FOR I=1 TO N:P(I)=J:J=J-1:NEXT I
  47. 7040  M=N
  48. 7050  M=INT(M/2)
  49. 7060  IF M=0 THEN RETURN
  50. 7070  J=1
  51. 7080  K=N-M
  52. 7090  I=J
  53. 7100  L=I+M
  54. 7110  IF S(P(I))<S(P(L)) THEN 7160
  55. 7120  SWAP P(I),P(L)
  56. 7130  I=I-M
  57. 7140  IF I<1 THEN 7160
  58. 7150  GOTO 7100
  59. 7160  J=J+1
  60. 7170  IF J>K THEN 7050 ELSE 7090
  61.